Blog

Luis Majano

July 13, 2009

Spread the word


Share your thoughts

This topic has been going on for a while, where some people have come up with the idea of having a private request collection that is unaffected by the incoming URL/FORM/REMOTE variables but still have access to it via the request context object.  You already CAN do this by just building a simple request context decorator.  However, some people think that this could be a cool core addition.  I am starting to think so also, so here are my thoughts on the topic.

The purpose of this post is for all ColdBox users to have an opinion on this feature and brainstorm as a community.

The request context object will be modified to support an internal private collection that can be accessible by the following methods; basically the same methods for the normal collection but with a private argument:

  • valueExists(key,[private:boolean='false'])
  • setValue(key,value,[private:boolean='false'])
  • getValue(key,[default],[private:boolean='false'])) and getTrimValue()
  • paramValue(key,value,[private:boolean='false'])
  • removeValue(key,[private:boolean='false'])
  • getCollection([private:boolean='false']) or getPrivateCollection()
  • clearCollection([private:boolean='false'])

Also, all views and layouts inherit an 'rc' scope for easy request collection access.  Now, a secondary scope will be added in order to leverage the separate private collection, so help choose the name:

  1. prc
  2. privateRC
  3. private
  4. $rc (MyFavorite)
  5. None of the above? Then put a comment for it?

That's it folks.  This is the roadmap for this feature.  What do you like, what don't you like? What would you change? What would you like to see?

Add Your Comment

(5)

Jul 14, 2009 00:15:00 UTC

by Will B.

I would absolutely like to see this. There are a lot of things that we put into RC to have them available to various area that really aren't form/url/etc. Things like objects, data structures related to layout, client customization. I'm big on this. I don't care for the $rc style, but "prc" would be pretty awesome. Or privateRC, or even CUSTOM via a setting, if possible. (Maybe not the best thought.) - WB

Jul 14, 2009 01:29:11 UTC

by zac spitzer

an interesting spin would be to make this private scope also accessible via the normal rc scope, but taking precedence over the rc scope i.e. if rc.userID and $rc.userID are defined, the later would be returned?

Jul 14, 2009 09:04:00 UTC

by Will B.

@Zac: To my way of thinking, that is irrelevant. You cannot access RC scoped variables without the 'rc.' prefix now. The way I understood it, there's be rc, rc1, rc2, rcn or whatever. Probably not numbered, but you get the idea. Unlike form, url, and variables, the "rc" scope is not built in, therefore not implicit.

Jul 14, 2009 11:00:54 UTC

by Luis Majano

@zac, Although interesting, this would just be a performance hog. I think separation is key. I like that 'rc' is implicitly created already, so by prefixing it with a $, means it is private, plus they stand out more. $rc.xeh

Jul 14, 2009 14:39:27 UTC

by Erik-Jan Jaquet

I think that will be an addition of great value. Like Will, we put a lot of objects etc in the RC scope that will perfectly fit in a private collection. For the time being I will look into a request decorator, also a great idea. As for your questions, I like getPrivateCollection a lot. I also like prc or PrivateRC. I am not sure if I like the $ idea, because to me this is confusing with JQuery, which I use a lot. I know one is J and one is CF, but on a quick glance in the code, it can look confusing, in my opinion.

Recent Entries

12 Days of BoxLang - Day 4: TestBox

12 Days of BoxLang - Day 4: TestBox

Today we’re celebrating one of the most exciting new additions to the BoxLang ecosystem:

the TestBox BoxLang CLI Runner — a fast, native way to run your TestBox tests directly through the BoxLang Runtime. ⚡

No server required. No CommandBox needed. Just pure, ultra-fast BoxLang-powered testing from the command lineon Windows, Mac, and Linux.

If you’re building modern applications with BoxLang — web apps, CLIs, serverless functions, Android apps, or OS-level utilities — this new feature gives you a unified, flexible testing workflow you can run anywhere.

Victor Campos
Victor Campos
December 13, 2025
12 days of BoxLang - Day 3: SocketBox!

12 days of BoxLang - Day 3: SocketBox!

As BoxLang continues evolving into a modern, high-performance, JVM-based runtime, real-time communication becomes essential for the applications we all want to build: dashboards, collaboration tools, notifications, live feeds, multiplayer features, and more.

That’s where SocketBox steps in — the WebSocket upgrade listener built to work seamlessly with CommandBox and the BoxLang MiniServer. ⚡

Today, for Day 3, we’re highlighting how SocketBox supercharges BoxLang development by giving you fast, flexible, and framework-agnostic WebSocket capabilities.

Maria Jose Herrera
Maria Jose Herrera
December 12, 2025
12 Days of BoxLang - Day 2: CommandBox

12 Days of BoxLang - Day 2: CommandBox

BoxLang + CommandBox: The Enterprise Engine Behind Your Deployments

For Day 2 of our 12 Days of Christmas series, we’re diving into one of the most powerful parts of the BoxLang ecosystem: CommandBox the defacto enterprise servlet deployment platform for BoxLang.

If BoxLang is the language powering your applications, CommandBox is the engine room behind it all. ⚙️

Victor Campos
Victor Campos
December 11, 2025